package com.parking.status.sync.netty.entity;

/**
 * Created by Administrator on 2015/9/16.
 */
public class MessageType {
    public static final byte IN = 0x01;
    public static final byte OUT = 0x02;
    public static final byte PARKINGLOT = 0x03;
    public static final byte FEESTATE = 0x04;
    public static final byte TIMECHECK = 0x05;
    public static final byte RESPONSE = 0x17;

    public static final String CODE_SYNC_PARKING_INFO = "161";
    public static final String CODE_PARKING_CHECKIN = "011";
    public static final String CODE_PARKING_IN = "131";
    public static final String CODE_PARKING_OUT = "132";
    public static final String CODE_BEAT = "020";

    public static final String FIELD_NAME_CODE = "code";

    public static Class<? extends RequestPre> getMessageClass(String code) {
        code = code.replace("\"", "");
        if (code.equalsIgnoreCase(CODE_SYNC_PARKING_INFO)) {
            return RequestSyncParkingInfo.class;
        } else if (code.equalsIgnoreCase(CODE_PARKING_CHECKIN)) {
            return RequestParkingCheckin.class;
        } else if (code.equalsIgnoreCase(CODE_PARKING_IN)) {
            return RequestParkingIn.class;
        } else if (code.equalsIgnoreCase(CODE_PARKING_OUT)) {
            return RequestParkingOut.class;
        } else if (code.equalsIgnoreCase(CODE_BEAT)) {
            return RequestHeartBeat.class;
        } else {
            return null;
        }
    }

//    public static int getContentLength(int type) {
//        int len = 0;
//        switch (type) {
//            case IN:
//                //名称 进场时间 进场类别 剩余车位 车辆号牌
//                //长度 6 1 6 12
//                len = 6 + 1 + 6 + 12;
//                break;
//            case OUT:
//                //名称 离场时间 离场类别 剩余车位 车辆号牌 时长金额
//                //长度 6 1 6 12 9
//                len = 6 + 1 + 6 + 12 + 9;
//                break;
//            case PARKINGLOT:
//                //名称 总停车位 月租长包总车位 时租访客总车位 总剩余车位 月租长包剩余车位 时租访客剩余车位
//                //长度 2 2 2 2 2 2
//                len = 2 + 2 + 2 + 2 + 2 + 2;
//                break;
//            case FEESTATE:
//                //名称 电子收费系统工作状态 电子收费系统报警状态
//                //长度 1 2
//                len = 1 + 2;
//                break;
//            case TIMECHECK:
//                //名称 校准时间
//                //长度 6
//                len = 6;
//                break;
//            case RESPONSE:
//                //名称 回应类型 错误代码
//                //长度 1 1
//                len = 2;
//                break;
//            default:
//                break;
//        }
//        return len;
//    }
}